package com.atchangsha.system.controller;

import java.util.Arrays;
import java.util.List;
import java.util.Map;
import com.atchangsha.system.constant.FoodTableConstants;
import com.atchangsha.system.dto.CreateTableDTO;
import com.atchangsha.system.dto.FoodTableDTO;
import org.springframework.web.bind.annotation.*;
import com.atchangsha.system.entity.FoodTableEntity;
import com.atchangsha.system.service.FoodTableService;
import com.atchangsha.system.common.utils.PageUtils;
import com.atchangsha.system.common.utils.Result;
import javax.annotation.Resource;

/**
 * 餐桌表
 * @author 卓越班项目第二组
 * @date 2022-04-22 00:49:58
 */
@RestController
@RequestMapping("system/foodTable")
@CrossOrigin
public class FoodTableController {
    @Resource
    private FoodTableService foodtableService;

    /**
     * 开台
     * @param createTableDTO
     * @return
     */
    @PostMapping("/createTable")
    public Result CreateTable(@RequestBody CreateTableDTO createTableDTO){
        Boolean flag = foodtableService.createTable(createTableDTO);
        if(!flag){
            return Result.fail(FoodTableConstants.FoodTableEnum.CREATE_TABLE_FAIL);
        }
        return Result.ok(FoodTableConstants.FoodTableEnum.CREATE_TABLE_SUCCESS);
    }

    /**
     * 分页查看所有桌子列表
     */
    @GetMapping("/list")
    public Result list(@RequestParam Map<String, Object> params){
        PageUtils page = foodtableService.queryPage(params);
        return Result.ok().setResult(page);
    }

    /**
     * 查看所有桌子
     * @return
     */
    @GetMapping("/listAll")
    public Result ListAll(){
        List<FoodTableEntity> list = foodtableService.list();
        return Result.ok().setResult(list);
    }


    /**
     * 信息
     */
    @GetMapping("/info/{id}")
    public Result info(@PathVariable("id") Long id){
		FoodTableEntity foodTable = foodtableService.getById(id);
        return Result.ok().setResult(foodTable);
    }

    /**
     * 增加桌子
     */
    @PostMapping("/add")
    public Result add(@RequestBody FoodTableDTO foodTableDTO){
		return foodtableService.add(foodTableDTO);
    }

    /**
     * 修改餐桌信息
     */
    @PutMapping("/update")
    public Result update(@RequestBody FoodTableDTO foodTableDTO){
		return foodtableService.updateFoodTable(foodTableDTO);
    }

    /**
     * 删除餐桌信息
     */
    @DeleteMapping("/delete")
    public Result delete(@RequestParam Long[] ids){
		return foodtableService.removeByIdArray(Arrays.asList(ids));
    }

}
